package main

import (
	"fmt"
	"os"
	"os/exec"
)

func main() {
	// 创建一个临时文件作为子进程的标准输入
	stdin, err := os.Create("stdin.txt")
	if err != nil {
		// 处理错误
	}
	defer stdin.Close()

	// 将临时文件作为子进程的标准输入
	cmd := exec.Command("bash", "-c", "cat < stdin.txt")
	cmd.Stdin = stdin

	// 创建一个临时文件作为子进程的标准输出
	stdout, err := os.Create("stdout.txt")
	if err != nil {
		// 处理错误
	}
	defer stdout.Close()

	// 将临时文件作为子进程的标准输出
	cmd.Stdout = stdout

	// 创建一个临时文件作为子进程的标准错误输出
	stderr, err := os.Create("stderr.txt")
	if err != nil {
		// 处理错误
	}
	defer stderr.Close()

	// 将临时文件作为子进程的标准错误输出
	cmd.Stderr = stderr

	// 运行子进程
	err = cmd.Run()
	if err != nil {
		// 处理错误
	}

	// 读取子进程的标准输出
	output, err := os.ReadFile("stdout.txt")
	if err != nil {
		// 处理错误
	}

	// 打印子进程的标准输出
	fmt.Println(string(output))
}
